package cli

import (
	"github.com/spf13/cobra"
)

var (
	templateFile string
	batchSize    int
	clearBefore  bool
	outputFormat string
	outputFile   string
)

// generateCmd represents the generate command
var generateCmd = &cobra.Command{
	Use:   "generate",
	Short: "生成测试数据",
	Long:  `根据YAML模板配置生成测试数据并插入MongoDB`,
	RunE:  runGenerate,
}

func init() {
	rootCmd.AddCommand(generateCmd)

	// 生成命令标志
	generateCmd.Flags().StringVarP(&templateFile, "template", "t", "template.yaml", "数据模板文件")
	generateCmd.Flags().IntVarP(&batchSize, "batch-size", "b", 1000, "批量插入大小")
	generateCmd.Flags().BoolVarP(&clearBefore, "clear", "c", false, "生成前清空集合")
	generateCmd.Flags().StringVarP(&outputFormat, "output", "o", "mongodb", "输出格式(mongodb/json)")
	generateCmd.Flags().StringVarP(&outputFile, "file", "f", "", "输出文件路径")
}

func runGenerate(cmd *cobra.Command, args []string) error {
	// opts := &cli.GenerateOptions{
	// 	MongoURI:     GetMongoURI(),
	// 	DatabaseName: GetDatabaseName(),
	// 	TemplateFile: templateFile,
	// 	BatchSize:    batchSize,
	// 	ClearBefore:  clearBefore,
	// 	OutputFormat: outputFormat,
	// 	OutputFile:   outputFile,
	// }

	// return cli.Generate(opts)

	return nil // 这里可以调用实际的生成逻辑
}
